home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / applications / wp / fwmacros1.lha / UserMacros / english / CloneObjects.fw < prev    next >
Encoding:
Text File  |  1994-10-04  |  1.7 KB  |  71 lines

  1. /*
  2. $AUTHOR:  Fernando Nunes e Manuel Lemos (UpperDesign@zeus.ci.ua.pt)
  3. $VER: CloneObjects 1.01 (1.10.94)
  4.       Description:  ARexx macro for FinalWriter to clone the selected
  5.                     objects by an user defined number of times
  6. */
  7.  
  8. options results
  9.  
  10. GraphicTool
  11.  
  12. /* obter a lista dos objectos seleccionados */
  13. selecionados = 0
  14. FirstObject SELECTED
  15. do until result = 0
  16.   selecionados = selecionados + 1
  17.   objectid.selecionados.0 = result
  18.   NextObject objectid.selecionados.0 SELECTED
  19. end
  20.  
  21. if selecionados >= 1 then
  22. do
  23.   RequestText '"Clone objects" "Enter the number of copies"'
  24.   vezes=result
  25.  
  26.   RequestText '"Clone objects" "Enter the horizontal offset between copies"'
  27.   offset_horizontal=result
  28.  
  29.   RequestText '"Clone objects" "Enter the vertical offset between copies."'
  30.   offset_vertical=result
  31.   
  32.   OBJECTO_LINHA = 2
  33.  
  34.   do objecto = 1 to selecionados
  35.     GetObjectCoords objectid.objecto.0
  36.     coords = RESULT
  37.     PARSE VAR coords pagina esquerda cima direita baixo
  38.  
  39.     GetObjectType objectid.objecto.0
  40.     tipo = result
  41.     SelectObject objectid.objecto.0
  42.     Copy 
  43.  
  44.     do copia = 1 to vezes
  45.       Paste
  46.       FirstObject SELECTED
  47.       objectid.objecto.copia = result
  48.  
  49.       cima = cima + offset_vertical
  50.       esquerda = esquerda + offset_horizontal
  51.  
  52.       /* linhas */
  53.       if tipo = OBJECTO_LINHA then
  54.         do
  55.           baixo = baixo + offset_vertical
  56.           direita = direita + offset_horizontal
  57.         end
  58.  
  59.       SetObjectCoords objectid.objecto.copia pagina esquerda cima direita baixo
  60.     end
  61.   end
  62.  
  63.   /* selecionar todos os objectos selecionados e respectivas cópias */
  64.   do objecto = 1 to selecionados
  65.     do copia = 0 to vezes
  66.       SelectObject objectid.objecto.copia MULTIPLE
  67.     end
  68.   end
  69.   Redraw
  70. end
  71.